r"""
部分提示词，指的是预先固定部分变量，而保留其他变量在后续动态填充
如：先预设系统参数，然后等用户输入后再补齐提示词模板
"""
from datetime import datetime
from langchain_core.prompts import PromptTemplate

# 创建一个包含时间变量的模板，时间变量使用partial_variables预设为当前时间
now_str = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
template1 = PromptTemplate.from_template(
    "现在时间是{now}，请回答我的问题给出答案，我的问题是：{question}",
    partial_variables={"now": now_str},
)
prompt1 = template1.format(question="今天是几号?")
print(prompt1)

print("=" * 50)
# 创建一个包含时间变量的模板，通过partial方法预设时间变量为当前时间
template2 = PromptTemplate.from_template("现在时间是{now}，请回答我的问题给出答案，我的问题是：{question}")
partial = template2.partial(now=now_str)
prompt2 = partial.format(question="今天是几号?")
print(prompt2)